void main() {
  var person = {"name": "张三", "age": 18};

  // keys属性可以获取所有的key值，注意返回的不是集合，所以你有需要的话可以toList()一下
  print(person.keys.toList()); //[name, age]

  // values属性可以获取所有的value值，注意返回的不是集合，所以你有需要的话可以toList()一下
  print(person.values.toList()); //[张三, 18]

  // isEmpty属性可以判断是否为空
  print(person.isEmpty); //false

  // isNotEmpty属性可以判断是否不为空
  print(person.isNotEmpty); //true

  // addAll(map); 可以用于合并两个对象或者你有多个属性要添加时
  person.addAll({'job': '程序员', "salary": '55k'});
  print(person); //{name: 张三, age: 18, job: 程序员, salary: 55k}

  // remove(key); 将map中某个属性以及他的值删掉
  person.remove('name');
  print(person); //{age: 18, job: 程序员, salary: 55k}

  // removeWhere(fun)根据条件删除掉部分属性, 比如这里就是删掉属性名为age且值为18的属性
  person.removeWhere((key, value) => key == 'age' && value == 18);
  print(person); //{job: 程序员, salary: 55k}

  // containsKey(key)检测map中是否有key这个属性
  print(person.containsKey('salary')); //true

  // containsValue(value)检测map中是否有值为value的属性
  print(person.containsValue('55k')); //true
}
